package com.zhang.controller;

import java.io.File;

public class FolderDeletion {
    public static void main(String[] args) {
        // 定义要遍历的根目录
        File root = new File("E:\\");
        try {
            // 调用遍历方法
            traverseAndDeleteFolders(root);
        } catch (Exception e) {
            System.out.println("出现异常: " + e.getMessage());
        }
    }

    public static void traverseAndDeleteFolders(File directory) throws Exception {
        // 获取目录下的所有文件和子目录
        File[] files = directory.listFiles();
        if (files!= null) {
            for (File file : files) {
                // 如果是目录
                if (file.isDirectory()) {
                    // 检查是否是名为 target 的文件夹
                    if (file.getName().equals("target")) {
                        System.out.println(file.getAbsolutePath());
                        deleteFolder(file);
                    } else {
                        // 递归调用 traverseAndDeleteFolders 方法，继续遍历子目录
                        traverseAndDeleteFolders(file);
                    }
                }
            }
        }
    }

    public static void deleteFolder(File folder) throws Exception {
        // 获取该文件夹下的所有文件和子目录
        File[] contents = folder.listFiles();
        if (contents!= null) {
            for (File file : contents) {
                if (file.isDirectory()) {
                    deleteFolder(file);
                } else {
                    file.delete();
                }
            }
        }
        // 删除该文件夹本身
        if (!folder.delete()) {
            throw new Exception("无法删除文件夹: " + folder.getAbsolutePath());
        }
    }
}